/**
 * 拖拽项类型枚举
 */
export type DragItemType = 
  | 'chapter'      // 章节
  | 'character'    // 角色
  | 'scene'        // 场景
  | 'note'         // 笔记
  | 'folder'       // 文件夹
  | 'attachment';  // 附件

/**
 * 基础拖拽项接口
 */
export interface DragItem {
  id: string;
  type: DragItemType;
  name: string;
  data?: any;
}

/**
 * 章节拖拽项
 */
export interface ChapterDragItem extends DragItem {
  type: 'chapter';
  data: {
    title: string;
    content: string;
    projectId: string;
    order: number;
  };
}

/**
 * 角色拖拽项
 */
export interface CharacterDragItem extends DragItem {
  type: 'character';
  data: {
    name: string;
    description?: string;
    traits?: Array<{name: string; value: string}>;
    background?: string;
    avatar?: string;
  };
}

/**
 * 场景拖拽项
 */
export interface SceneDragItem extends DragItem {
  type: 'scene';
  data: {
    name: string;
    description?: string;
    location?: string;
    time?: string;
  };
}

/**
 * 笔记拖拽项
 */
export interface NoteDragItem extends DragItem {
  type: 'note';
  data: {
    title: string;
    content: string;
  };
}

/**
 * 文件夹拖拽项
 */
export interface FolderDragItem extends DragItem {
  type: 'folder';
  data: {
    items: DragItem[];
  };
}

/**
 * 拖放结果接口
 */
export interface DropResult {
  dropTargetId: string;
  items: DragItem[];
  success: boolean;
  message?: string;
}

/**
 * 拖拽数据传递格式
 */
export interface DragData {
  items: DragItem[];
  sourceId: string;
  timestamp: number;
} 